#ifndef _SERVERSOCKET_H
#define _SERVERSOCKET_H

#pragma once
#include "Socket.h"
#include <winsock2.h>

namespace net
{
enum OptionLevel
{
	TCP
};
enum OptionName
{
	NO_DELAY
};
/*
 * This is an interface to define the basic behaviour of a server socket.
 * Implementation specific code must be placed in classes implementing
 * this interface.
 */
class ServerSocket : public Socket
{
public:
	ServerSocket(void);
	virtual ~ServerSocket(void);
	virtual int doBind(void)=0;
	virtual int doListen(void)=0;
	virtual SOCKET doAccept(void)=0;
	virtual void setOption(OptionLevel, OptionName)=0;
	virtual string toString(void)=0;
};
};

#endif
